package de.jmda.gen.java;

import javax.validation.constraints.NotNull;

import de.jmda.gen.java.ModifiersUtil.VisibilityModifier;

/**
 * Generator for method declarations.
 *
 * @author rwegner
 */
public interface MethodDeclarationGenerator extends DeclarationGenerator
{
	DeclaredMethodGenerator getDeclaredMethodGenerator();
	void setDeclaredMethodGenerator(DeclaredMethodGenerator generator);
	
	void addAnnotation(@NotNull Class<?> annotation);
	void setVisibility(VisibilityModifier modifier);
	void setTypeName(@NotNull Class<?> type);
	void setMethodName(String string);
	void addParameter(@NotNull Class<?> type, @NotNull String name);
	void setMethodBody(String methodBody);
}